from django.conf import settings
from django.core.files.storage import Storage
from fdfs_client.client import Fdfs_client

class FddsStorsge(Storage):
    def __init__(self):
        #初始化属性值
        self.client_conf = settings.FDFS_CLIENT
        self.fdfs_url = settings.FDF_URL

    def open(self, name, mode='rb'):
        #打开文件 读取文件的功能由storage提供 此处不需要写代码
        pass
    def save(self, name, content, max_length=None):
        #保存 将文件保存到fastds
        #content表示从请求报文中获取的文件对象，通过read（）方法读取文件的二进制数

        #1 创建对象
        client = Fdfs_client(self.client_conf)
        #2 保存
        result = client.upload_by_buffer(content.read())

        #3返回文件
        return result.get('Remote file_id')
    def url(self,name):
        #获取访问图片的url地址
        #name表示文件的名称
        return self.fdfs_url + name
    def exists(self, name):
        #p判断文件是否存在 将文件保存到fastdfs 本地无文件
        return False
